1d9c70c6dace8caef6d1cfa9cd6bf40919d2e0d9,src/test/java/com/shapesecurity/salvation/ParserTest.java,ParserTest,testFutureDirectives,#,577

Before Change


    @Test
    public void testFutureDirectives() {
        ArrayList<Notice> notices = new ArrayList<>();
        parseWithNotices("referrer no-referrer", notices);
        assertEquals("Error", notices.get(0).type.getValue());
        assertEquals("The referrer directive is not in the CSP specification yet.", notices.get(0).message);

After Change


    public void testNewDirectives() {
        Policy p;
        ArrayList<Notice> notices = new ArrayList<>();
        p = parseWithNotices("referrer no-referrer", notices);
        assertEquals(1, p.getDirectives().size());
        assertEquals(0, notices.size());

        notices.clear();
        p = parseWithNotices("referrer", notices);
        assertEquals(0, p.getDirectives().size());
        assertEquals(1, notices.size());
        assertEquals("The referrer directive must contain at least one referrer-token", notices.get(0).message);

        notices.clear();
        p = parseWithNotices("referrer aaa", notices);
        assertEquals(0, p.getDirectives().size());
        assertEquals(1, notices.size());
        assertEquals("Expecting referrer-token but found aaa", notices.get(0).message);

        notices.clear();
        p = parseWithNotices("referrer no-referrer unsafe-url", notices);
        assertEquals(0, p.getDirectives().size());
        assertEquals(1, notices.size());
        assertEquals("The referrer directive must contain only one referrer-token", notices.get(0).message);

        notices.clear();
        p = parseWithNotices("upgrade-insecure-requests", notices);
        assertEquals(1, p.getDirectives().size());
        assertEquals(0, notices.size());

        notices.clear();
        p = parseWithNotices("upgrade-insecure-requests a", notices);
        assertEquals(0, p.getDirectives().size());
        assertEquals(1, notices.size());
        assertEquals("The upgrade-insecure-requests directive must not contain any value", notices.get(0).message);